Crossbar switches are well-known circuits for providing multiple data input to output interconnections. Crossbar switches, or more particularly digital cross-connects, are conventionally created using integrated circuits of transistors.
Programmable logic devices (PLDs) exist as a well-known type of integrated circuit (IC) that may be programmed by a user to perform specified logic functions. There are different types of programmable logic devices, such as programmable logic arrays (PLAs) and complex programmable logic devices (CPLDs). One type of programmable logic device, called a field programmable gate array (FPGA), is very popular because of a superior combination of capacity, flexibility, time-to-market, and cost.
An FPGA typically includes an array of configurable logic blocks (CLBs) surrounded by a ring of programmable input/output blocks (IOBs). The CLBs and IOBs are interconnected by a programmable interconnect structure. The CLBs, IOBs, and interconnect structure are conventionally programmed by loading a stream of configuration data (a “configuration bitstream”) into internal configuration memory cells that define how the CLBs, IOBs, and interconnect structure are configured. The configuration bitstream may be read from an external memory, conventionally an external integrated circuit memory EEPROM, EPROM, PROM, and the like, though other types of memory may be used. The collective states of the individual memory cells then determine the function of the FPGA.
Large fabric crossbar switches have been implemented in FPGAS. Early implementations used static logic and routing. Later, large fabric implementations based on configurable logic and routing were created. However, these large fabric crossbar switches have not been self-contained for reconfiguration.
Notably, a large switch fabric may be achieved using smaller switch fabrics, such as by using a three-stage or Clos crossbar switch architecture. However, heretofore there has not been a PLD implementation of a reconfigurable multi-stage crossbar switch architecture.
Accordingly, it would be both desirable and useful to provide a reconfigurable crossbar switch implemented with configurable logic to overcome the above shortcomings.